package com.stark.wechat.service.impl;

import java.io.UnsupportedEncodingException;
import java.util.HashMap;
import java.util.Map;

import org.springframework.stereotype.Service;

import com.stark.wechat.util.SysTools;
import com.stark.wechat.util.WechatUtil;

import net.sf.json.JSONArray;
import net.sf.json.JSONObject;

/**
 * 自定义菜单业务逻辑。
 * @author Ben
 * @since 1.0.0
 * @version 1.0.0, 2017/8/6
 */
@Service("menuService")
public class MenuServiceImpl {
	/**
	 * 组织自定义菜单 json 字符串。
	 * @return 自定义菜单 json 字符串。
	 * @throws UnsupportedEncodingException 字符串转码时抛出异常。
	 */
	public String generateMenuJsonStr() throws UnsupportedEncodingException {
		String appID = SysTools.getAppId();
		
		JSONArray buttonArray = new JSONArray();
		JSONObject button, subBtn;
		JSONArray subBtnArray;
		// 一级菜单：搜索
		button = new JSONObject();
		button.put("name", "搜索");
		subBtnArray = new JSONArray();
		// 二级菜单：百度
		subBtn = new JSONObject();
		subBtn.put("name", "百度");
		subBtn.put("type", "view");
		subBtn.put("url", WechatUtil.formatOauth2URL(appID, SysTools.formatForwardLink("https://m.baidu.com"), "snsapi_base", null));
		subBtnArray.add(subBtn);
		// 二级菜单：搜狗
		subBtn = new JSONObject();
		subBtn.put("name", "搜狗");
		subBtn.put("type", "view");
		subBtn.put("url", WechatUtil.formatOauth2URL(appID,  SysTools.formatForwardLink("https://wap.sogou.com/"), "snsapi_base", null));
		subBtnArray.add(subBtn);
		button.put("sub_button", subBtnArray);
		buttonArray.add(button);
		
		// 一级菜单：音乐
		button = new JSONObject();
		button.put("name", "音乐");
		subBtnArray = new JSONArray();
		// 二级菜单：QQ音乐
		subBtn = new JSONObject();
		subBtn.put("name", "QQ音乐");
		subBtn.put("type", "view");
		subBtn.put("url", WechatUtil.formatOauth2URL(appID,  SysTools.formatForwardLink("https://m.y.qq.com"), "snsapi_base", null));
		subBtnArray.add(subBtn);
		// 二级菜单：网易云音乐
		subBtn = new JSONObject();
		subBtn.put("name", "网易云音乐");
		subBtn.put("type", "view");
		subBtn.put("url", WechatUtil.formatOauth2URL(appID,  SysTools.formatForwardLink("http://music.163.com/m/"), "snsapi_base", null));
		subBtnArray.add(subBtn);
		button.put("sub_button", subBtnArray);
		buttonArray.add(button);
		
		// 一级菜单：视频
		button = new JSONObject();
		button.put("name", "视频");
		subBtnArray = new JSONArray();
		// 二级菜单：优酷
		subBtn = new JSONObject();
		subBtn.put("name", "优酷");
		subBtn.put("type", "view");
		subBtn.put("url", WechatUtil.formatOauth2URL(appID,  SysTools.formatForwardLink("http://www.youku.com"), "snsapi_base", null));
		subBtnArray.add(subBtn);
		// 二级菜单：爱奇艺
		subBtn = new JSONObject();
		subBtn.put("name", "爱奇艺");
		subBtn.put("type", "view");
		subBtn.put("url", WechatUtil.formatOauth2URL(appID,  SysTools.formatForwardLink("http://m.iqiyi.com"), "snsapi_base", null));
		subBtnArray.add(subBtn);
		button.put("sub_button", subBtnArray);
		buttonArray.add(button);
		
		Map<String, Object> params = new HashMap<>();
		params.put("button", buttonArray);
		String menuJsonStr = JSONObject.fromObject(params).toString();
		return menuJsonStr;
	}
}
